#include <algorithm>
#include <climits>
#include <cstdint>
#include <iostream>
#include <vector>

using ll = int64_t;
const ll INF = INT_MAX;

struct M22{
    std::vector<std::vector<ll>> v{2,std::vector<ll>(2)};
    M22 operator*(const M22&o){
        M22 n;
        n.v[0][0]=std::max(v[0][0]+o.v[0][0],v[0][1]+o.v[1][0]);
        n.v[0][1]=std::max(v[0][0]+o.v[0][1],v[0][1]+o.v[1][1]);
        n.v[1][0]=std::max(v[1][0]+o.v[0][0],v[1][1]+o.v[1][0]);
        n.v[1][1]=std::max(v[1][0]+o.v[0][1],v[1][1]+o.v[1][1]);
        return n;
    }
    M22&operator*=(const M22&o){
        *this= *this * o;
        return *this;
    }
};
std::vector<M22> t;
std::vector<M22> nums;

M22 create(ll l, ll r, ll idx) {
    if (l == r) {
        t[idx] = nums[l];
        return t[idx];
    }
    ll mid = (l + r) / 2;
    t[idx] = create(mid + 1, r, 2 * idx + 2)*create(l, mid, 2 * idx + 1);
    return t[idx];
}

void update(ll l, ll r, ll idx, ll pos,const M22&val) {
    if (l == r) {
        t[idx] = val;
        return;
    }
    ll mid = (l + r) / 2;
    if (pos <= mid) {
        update(l, mid, 2 * idx + 1, pos, val); 
    } else {
        update(mid + 1, r, 2 * idx + 2, pos, val);
    }
    t[idx] = t[2 * idx + 2]*t[2 * idx + 1];
}

M22 query(ll cur,ll ql,ll qr,ll l,ll r){
    if(qr<l || r<ql)return M22{{{0, -INF}, {-INF, 0}}};
    if(ql<=l && r<=qr)return t[cur];
    ll mid = (l+r)/2;
    return query(cur*2+2, ql, qr, mid+1, r)*query(cur*2+1, ql, qr, l, mid);
}


int main(){
    ll n;
    std::cin>>n;
    ll q;
    std::cin>>q;
    t.resize(4*n);
    nums.resize(n);
    std::vector<ll> a(n),b(n);
    for(ll i=0; i<n; i++){
        std::cin>>a[i];
        std::cin>>b[i];
    }
    for(ll i=0;i<n;i++){
        nums[i].v[0][0]=a[i];
        nums[i].v[0][1]=b[i];
        nums[i].v[1][1]=INT_MIN;
    }
    create(0, n - 1, 0);
    const auto output=[&](){
        M22 nm = query(0, 0, n-1, 0, n-1);
        std::cout<< std::max(nm.v[0][0] , nm.v[0][1]) <<'\n';
    };
    output();
    while(q--){
        ll idx;
        std::cin>>idx;
        --idx;
        std::cin>>a[idx]>>b[idx];
        update(0, n - 1, 0, idx, M22{{{a[idx],b[idx]},{0,INT_MIN}}});
        output();
    }
    std::cin>>q;
}